David Monniaux est chercheur en informatique, Centre national de la recherche scientifique (CNRS), Université Grenoble Alpes (UGA)
Le mot «algorithme», jadis employé exclusivement dans certaines disciplines scientifiques, est maintenant partout. Parfois parés de vertus quasi magiques, parfois vilipendés, les algorithmes sont évoqués dans les débats sociaux et politiques. Pourtant, ils sont globalement mal connus, et le mot a fini par avoir des connotations bien éloignées de son sens scientifique. Un algorithme est une méthode de calcul. On employait déjà le mot «algorithme» dans ce sens au début du XVIIe siècle, ou plus généralement dans le sens d’art calculatoire. Un algorithme a un but: par exemple, l’algorithme de multiplication qu’on apprend à l’école primaire a pour but… de multiplier deux nombres.
Un algorithme met en œuvre des opérations mécaniques, qui ne nécessitent pas de faire intervenir l’intuition ou l’intelligence de la personne qui calcule. Plusieurs algorithmes peuvent parvenir au même but, mais en nécessitant plus ou moins d’opérations, plus ou moins de place mémoire. Bien évidemment, en l’absence d’autres facteurs à prendre en compte, on essaye de minimiser ce temps de calcul et cet espace mémoire nécessaires. Par exemple, il y a bien plus rapide que l’algorithme appris à l’école primaire si l’on veut multiplier des nombres avec beaucoup de chiffres. Cela peut paraître surprenant, tant cet algorithme nous est familier et ne semble pas faire de travail inutile! Le grand mathématicien soviétique Andreï Kolmogorov avait conjecturé en 1956 qu’il n’existait pas d’algorithme de multiplication fondamentalement plus rapide, et avait été très surpris quand, en 1960, un jeune étudiant qui assistait à son séminaire, Anatoli Karatsouba, lui en avait proposé un.
Les idées de Karatsouba ont ouvert une ligne de recherches fructueuses (algorithme de Toom-Cook…), qui ont permis notamment l’utilisation de chiffrements cryptographiques efficaces, utilisés quotidiennement aujourd’hui pour les accès aux sites Web, les transactions bancaires, etc. La science qui conçoit et analyse les algorithmes s’appelle l’algorithmique; c’est une composante de la science informatique. Une question apparemment aussi simple que trier des données ou rechercher une donnée dans une table a motivé l’écriture de longs ouvrages savants!
Comment le terme de «boîte noire» a-t-il prospéré?
Comment est-on parti de ce sens scientifique et précis pour arriver à celui de «boîte noire» aux résultats imprévisibles et mal compris? Je discerne plusieurs facteurs.
Le premier est que la science informatique est relativement mal connue. Certes, nous ne sommes plus au temps où des gens s’étonnaient que l’on pût soutenir des doctorats dans cette discipline, mais est moins identifiée que, par exemple, l’histoire ou la physique.
De fait, quand certaines chercheuses ou chercheurs en informatique sont présentés dans les médias, on les décrit comme travaillant «en informatique et mathématiques», peut-être parce que le mot «informaticien» évoque d’autres images (technicien qui installe du matériel, hacker en sweat-shirt à capuche dans l’obscurité devant un écran vert où défilent des signes cabalistiques…).
Une «boîte noire» peut être analysée
De plus, pour la plupart des logiciels grand public, leur code source, c’est-à-dire la description de leur fonctionnement interne, n’est pas public. Il est donc impossible, même pour une personne de l’art, de savoir ce qu’ils font vraiment – même s’il est souvent possible de s’en douter: même une «boîte noire» peut être en partie analysée. Il est donc sain de se méfier! Enfin, dernier facteur: le déploiement massif, ces dernières années, d’applications mettant en jeu de l’apprentissage automatique (machine learning), une forme d’«intelligence artificielle». On a développé ce genre d’approches pour des problèmes que l’on ne savait pas bien attaquer par l’algorithmique classique, car celle-ci exige une modélisation du monde jusqu’à obtenir un problème bien défini.
Or, on ne peut pas facilement produire, par exemple, une définition mathématique de comment différencier un chat d’un chien à partir des valeurs des pixels d’une photo d’animal. On procède donc en faisant «apprendre» des bonnes réponses à partir de bases de données, ce qui en termes concrets revient à ce qu’un algorithme ajuste des paramètres, parfois des milliards, pour que le système réponde correctement non seulement sur les exemples qu’on lui a fournis, mais aussi sur d’autres, par une forme d’analogie.
La qualité d’un tel système dépend donc de la base de données utilisée pour l’apprentissage, qui peut avoir des erreurs et des biais de couverture, et aussi du soin que les concepteurs ont pris d’identifier divers travers possibles. Surtout, un tel système produit des résultats sans les justifier – l’intelligence artificielle explicable est un sujet de recherche. On peut donc parler ici de boîte noire, même si on peut comprendre certaines choses.
La version originale de cet article a été publiée sur The Conversation